1. Field of the Invention
The present invention generally relates to image processing devices, image processing methods and computer program products for image processing. More specifically, the present invention can be applied to an image processing device, an image processing method, and a computer program product for image processing wherein the concepts of pipes and filters are applied.
2. Description of the Related Art
In recent years, image processing devices such as printers, copiers, scanners, facsimiles, and multi-functional devices configured to perform these functions, as well as computers, generally have CPUs (Central Processing Units). Each function is performed by control of applications.
For example, an image forming device described in Japanese Patent No. 3679349 has, as a platform, a function commonly used by each application. The application can be installed by using an API (Application Programming Interface) of this platform. According to this image forming device, because a function commonly used is installed as a part of the platform, it is possible to avoid separately installing the function for every application and to improve development efficiency of all the applications.
However, in the platform having the API commonly used, if the function provided by this platform or granularity of the interface is not properly designed, the development efficiency of the application may be less than expected.
For example, if this granularity is too small, while the application provides simple services, a great number of accesses to the API is required so that the source code may be complex.
On the other hand, in a case where the granularity is too large, if an application, configured to provide service where modification is made to a part of a certain function, is expected top be installed, it is necessary to modify the platform so that the number of developments may be increased. Especially, in a case where each module in the platform strongly depends on the application, it is necessary to add a new function in the platform and correct an existing part and therefore the situation may become more complex.
For example, if an application is expected to be installed where a part of the service provided by the existing application such as an input process of an image is changed, it is not possible to access the existing application in a part other than the changed part. Accordingly, it is necessary to rewrite the source code again and install a new application.